package co.yixiang.common.param;

/**
 * 查询参数对象，用于分页和搜索功能
 */
import co.yixiang.common.constant.CommonConstant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

@Data
@ApiModel("查询参数对象")
public abstract class QueryParam implements Serializable{
    /**
     * 序列化ID，用于版本控制
     */
    private static final long serialVersionUID = -3263921252635611410L;

    /**
     * 页码，默认为1
     */
    @ApiModelProperty(value = "页码,默认为1")
	private Integer page = CommonConstant.DEFAULT_PAGE_INDEX;

    /**
     * 页大小，默认为10
     */
	@ApiModelProperty(value = "页大小,默认为10")
	private Integer limit = CommonConstant.DEFAULT_PAGE_SIZE;

    /**
     * 搜索字符串，用于模糊搜索
     */
    @ApiModelProperty(value = "搜索字符串")
    private String keyword;

    /**
     * 设置页码，如果传入的页码无效，则设置为默认值1
     *
     * @param page 页码
     */
    public void setPage(Integer page) {
	    if (page == null || page <= 0){
	        this.page = CommonConstant.DEFAULT_PAGE_INDEX;
        }else{
            this.page = page;
        }
    }

    /**
     * 设置页大小，如果传入的页大小无效，则设置为默认值10
     *
     * @param limit 页大小
     */
    public void setLimit(Integer limit) {
	    if (limit == null || limit <= 0){
	        this.limit = CommonConstant.DEFAULT_PAGE_SIZE;
        }else{
            this.limit = limit;
        }
    }

}
